#ifndef DRAWOBJECT_H
#define DRAWOBJECT_H

#include <QString>
#include <QObject>
#include <QColor>
#include <QPaintDevice>
#include <QtXml>
#include <QtCore/QStringList>

enum FluffyItemType
{
    ItemType_None = 0,
    ItemType_Circle = 1,
    ItemType_Rectangle = 2,
    ItemType_Text = 3,
    ItemType_Path = 4
};

//Базовый класс объектов векторной графики
class DrawObject : public QObject
{
    Q_OBJECT

protected:
    // Загрузка стиля
    QMap<QString,QString> parseStyle(QString &style);

    // Сериализация стиля
    QString constructStyle(QMap<QString,QString> &style);

    // Получение цвета в фомате #xxxxxx
    QString getHexColor(QColor& color);

public:
    DrawObject();
    virtual ~DrawObject();

    //цвет заливки
    QColor fillColor;

    //цвет линии
    QColor strokeColor;

    //толщина линии
    signed short strokeWidth;

    // Отрисовка объекта
    virtual void draw(QPaintDevice* device, qreal scale) = 0;

    //Метод создания DOM-узла из элемента
    virtual QDomElement saveToNode(QDomDocument &domDoc) = 0;

    //Загрузить информацию о себе из узла
    virtual void loadFromNode(const QDomElement &node) = 0;
};

#endif // DRAWOBJECT_H
